<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //var 没有块结构，用for里面和for外边都可以访问到
        // for(var i=1;i<=3;i++){
        //     console.log(i);// 1 2 3
        // }
        // console.log(i);//4

console.log("++++++++++++++++++");
        //用let在外边就访问不到，因为他是有块作用域的
        // for(let i=0;i<=3;i++){
        //     console.log(i);
        // }
        // console.log(i);//报错

    //  for(let i=0;i<=3;i++){
    //      setTimeout(()=>{
    //          console.log(i);
    //      },1000)
    //  }

    // let arr= [];
    // for(let i=1;i<=3;i++){
    //     arr.push(i);
    // }
    // console.log(arr[1]);

    for(var i=1;i<=3;i++){
  (function(i){
      setTimeout(() => {
           console.log(i);
      }, 1000);
  })(i)   //用立即执行函数来用var定时器,因为定时器要压栈排队，排队完，var结果为4、
           //压栈问题得到解决，
    }
    
    </script>
</body>
</html>